﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MediSIIM.BizComponent.HangZhouSYBInterface
{
    public enum MENZHENZHUYUAN
    {
        GONGYONG = 0,
        MENZHEN = 1,
        ZHUYUAN = 2
    }

    public struct TradeType
    {
        public EnumTradeTypeNo TradeTypeNo;
        public MENZHENZHUYUAN MenzhenZhuyuan;
    }

    public class MappingInfo
    {
        public static Dictionary<TradeType, KeyValuePair<string, string>> TradeType = new Dictionary<TradeType, KeyValuePair<string, string>>();
        public static Dictionary<int, string[]> FeiyongType = new Dictionary<int, string[]>();
        static MappingInfo()
        {
            //费用类型
            FeiyongType.Add(0, new string[] { "2", "FYZE", "医疗费总额" });
            FeiyongType.Add(1, new string[] { "2", "ZFZE", "个人自费金额" });
            FeiyongType.Add(2, new string[] { "2", "JINE01", "乙类药品自理" });
            FeiyongType.Add(3, new string[] { "2", "JINE02", "特检自理" });
            FeiyongType.Add(4, new string[] { "2", "JINE03", "特治自理" });
            FeiyongType.Add(5, new string[] { "2", "JINE04", "起付自负金额" });
            FeiyongType.Add(6, new string[] { "2", "JINE05", "起付标准帐户支付金额" });
            FeiyongType.Add(7, new string[] { "2", "JINE06", "起付标准现金支付金额" });
            FeiyongType.Add(8, new string[] { "2", "JINE07", "分段自理" });
            FeiyongType.Add(9, new string[] { "2", "JINE08", "起付以上帐户支付金额" });
            FeiyongType.Add(10, new string[] { "2", "JINE09", "起付以上现金支付金额" });
            FeiyongType.Add(11, new string[] { "2", "JINE10", "分段1自付" });
            FeiyongType.Add(12, new string[] { "2", "JINE11", "分段2自付" });
            FeiyongType.Add(13, new string[] { "2", "JINE12", "分段3自付" });
            FeiyongType.Add(14, new string[] { "2", "JINE13", "分段4自付" });
            FeiyongType.Add(15, new string[] { "2", "JINE14", "分段5自付" });
            FeiyongType.Add(16, new string[] { "2", "JINE15", "超过封顶线个人自付金额" });
            FeiyongType.Add(17, new string[] { "1", "DNZHZF", "本年帐户支出金额" });
            FeiyongType.Add(18, new string[] { "1", "LNZHZF", "历年帐户支出金额" });
            FeiyongType.Add(19, new string[] { "1", "TCJJZF", "统筹支付金额" });
            FeiyongType.Add(20, new string[] { "1", "XJZF", "个人现金支付金额" });
            FeiyongType.Add(21, new string[] { "1", "ZHIFU01", "救助金支付金额" });
            FeiyongType.Add(22, new string[] { "1", "ZHIFU02", "公务员补助支付金额" });
            FeiyongType.Add(23, new string[] { "2", "JINE16", "自理床位费" });
            FeiyongType.Add(24, new string[] { "2", "JINE17", "公务员本次进入门诊起伏线" });
            FeiyongType.Add(25, new string[] { "2", "JINE18", "公务员门诊起伏线历年账户支付" });
            FeiyongType.Add(26, new string[] { "2", "JINE19", "公务员门诊分段自负金额" });
            FeiyongType.Add(27, new string[] { "0", "QITA01", "单位性质" });
            FeiyongType.Add(28, new string[] { "0", "QITA02", "人员类别" });
            FeiyongType.Add(29, new string[] { "0", "QITA03", "人员性质" });
            FeiyongType.Add(30, new string[] { "2", "JINE20", "符合基本医疗保险费用" });
            FeiyongType.Add(31, new string[] { "1", "ZHIFU03", "离休人员基金" });
            FeiyongType.Add(32, new string[] { "1", "ZHIFU04", "退休门诊统筹基金" });
            FeiyongType.Add(33, new string[] { "1", "ZHIFU05", "子女统筹基金" });
            FeiyongType.Add(34, new string[] { "1", "ZHIFU06", "两费基金" });
            FeiyongType.Add(35, new string[] { "1", "ZHIFU07", "离休家属基金" });
            FeiyongType.Add(36, new string[] { "2", "JINE21", "结算前帐户余额" });
            FeiyongType.Add(37, new string[] { "2", "JINE22", "结算前本年帐户余额" });
            FeiyongType.Add(38, new string[] { "2", "JINE23", "结算前历年帐户余额" });
            FeiyongType.Add(39, new string[] { "2", "JINE24", "结算后帐户余额" });
            FeiyongType.Add(40, new string[] { "2", "JINE25", "结算后本年帐户余额" });
            FeiyongType.Add(41, new string[] { "2", "JINE26", "结算后历年帐户余额" });
            FeiyongType.Add(42, new string[] { "1", "ZHIFU08", "困难救助基金" });
            FeiyongType.Add(43, new string[] { "1", "ZHIFU09", "企业在职门诊统筹基金" });
            FeiyongType.Add(44, new string[] { "1", "ZHIFU10", "老居民基金" });
            FeiyongType.Add(45, new string[] { "1", "ZHIFU11", "少年儿童基金" });
            FeiyongType.Add(46, new string[] { "1", "ZHIFU12", "农民工基金支付" });
            FeiyongType.Add(47, new string[] { "0", "QITA04", "农民工累计缴费月数" });
            FeiyongType.Add(48, new string[] { "0", "QITA05", "家庭病床建床天数（符合医保范围内）" });
            FeiyongType.Add(49, new string[] { "1", "ZHIFU13", "公费抗战配偶基金" });
            FeiyongType.Add(50, new string[] { "1", "ZHIFU14", "公费解放配偶基金" });
            FeiyongType.Add(51, new string[] { "1", "ZHIFU15", "两费抗战配偶基金" });
            FeiyongType.Add(52, new string[] { "1", "ZHIFU16", "两费解放配偶基金" });
            FeiyongType.Add(53, new string[] { "1", "ZHIFU17", "副省级基金" });
            FeiyongType.Add(54, new string[] { "1", "ZHIFU18", "副市级基金" });
            FeiyongType.Add(55, new string[] { "1", "ZHIFU19", "副厅级基金" });
            FeiyongType.Add(56, new string[] { "1", "ZHIFU20", "副局级基金" });
            FeiyongType.Add(57, new string[] { "1", "ZHIFU21", "副处以下基金" });
            FeiyongType.Add(58, new string[] { "1", "ZHIFU22", "城区子女基金" });
            FeiyongType.Add(59, new string[] { "1", "ZHIFU23", "城区公费离休基金" });
            FeiyongType.Add(60, new string[] { "1", "ZHIFU24", "城区两费离休基金" });
            FeiyongType.Add(61, new string[] { "0", "QITA06", "城区号(六城区离休和子女)" });
            FeiyongType.Add(62, new string[] { "1", "ZHIFU25", "新农合基金" });
            FeiyongType.Add(63, new string[] { "1", "ZHIFU26", "体检基金" });
            FeiyongType.Add(64, new string[] { "1", "ZHIFU27", "大学生基金" });
            FeiyongType.Add(65, new string[] { "2", "JINE27", "职工医保二级保健干部自负金额" });
            FeiyongType.Add(66, new string[] { "2", "ZHIFU28", "劳模基金" });
            FeiyongType.Add(67, new string[] { "2", "JINE28", "历年帐户支付自理" });
            FeiyongType.Add(68, new string[] { "2", "JINE29", "伤残基金支付自负现金" });
            FeiyongType.Add(69, new string[] { "2", "JINE30", "伤残基金支付自理现金" });
            FeiyongType.Add(70, new string[] { "1", "ZHIFU29", "单病种医院承担费用" });
            FeiyongType.Add(71, new string[] { "0", "QITA07", "单病种标志" });
            FeiyongType.Add(72, new string[] { "0", "QITA08", "城乡居民定点标志" });

            //查询医疗保险人员信息
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.NULL, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("0000", "0000"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.GUAHAOJS, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3100", "3110"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.GUAHAOTH, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3100", "3110"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.MENZHENYJS, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3100", "3110"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.MENZHENJS, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3100", "3110"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.MENZHENTF, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3100", "3110"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanDJ, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3200", "3210"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanJS, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3200", "3210"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanYJS, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3200", "3210"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.DuiZhang, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3400", "3410"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.DuiZhangCX, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3400", "3410"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.RENYUANXX, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3500", "3510"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.MZQiandao, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3600", "3610"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZYQiandao, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3620", "3630"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.MZQiantui, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3600", "3610"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZYQiantui, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3620", "3630"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanFYZJ, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3800", "3810"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanFYSCOne, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3500", "3510"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanFYSCAll, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("4200", "4210"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanSYXG, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("4200", "4210"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanJSQX, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3200", "3210"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.MENZHENFYSC, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("4200", "4210"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.MENZHENFYJZ, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3800", "3810"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.MENZHENDJ, MenzhenZhuyuan = MENZHENZHUYUAN.MENZHEN }, new KeyValuePair<string, string>("3200", "3210"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ZhuYuanDJ, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3240", "3250"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.JIAOYIXXXZ, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3800", "3810"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.HuanYuanMX, MenzhenZhuyuan = MENZHENZHUYUAN.ZHUYUAN }, new KeyValuePair<string, string>("3900", "3910"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.YiYuanDLBA, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3500", "3510"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.ShenPiCX, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3500", "3510"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.YaoPinMLGX, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3800", "3810"));
            TradeType.Add(new TradeType() { TradeTypeNo = EnumTradeTypeNo.YiYuanDLBAQX, MenzhenZhuyuan = MENZHENZHUYUAN.GONGYONG }, new KeyValuePair<string, string>("3800", "3810"));
        }
    }
}
